Developer --> Technical Publications
PATHHardware Documentation > PowerBook G3 Series 1999

Compatibility

A Mac OS ROM image that is in write-protected RAM will appear to be a ROM to all MacOS software and applications. Because the image of the Mac OS ROM in RAM appears to be a ROM, the ROM-in-RAM approach is completely compatible with all application and system software.

The Mac OS ROM image is kept in a file in the System Folder on the specified boot device. In order to avoid problems with localizing the name, the file is located by file type instead of by name.

In order for Open Firmware to retrieve the Mac OS ROM image file, it must be able to read the selected boot device. If the Mac OS ROM image file is on a partition that is on a RAID, encrypted, striped, or otherwise non-standard device, Open Firmware must be able to read from these devices in order to boot the Mac OS. Two possible solutions to this problem are to have a standard partition available on the device that contains the Mac OS ROM image file, or to provide Open Firmware methods to read the file.

The main incompatibility that ROM-in-RAM approach introduces is that memory is not mapped one-to-one, as it has been for previous PCI-based Macs. Software that assumes the logical and physical addresses are the same will fail, even when virtual memory is not on. Well-behaved software--that is, software that always calls the LogicalToPhysical or PrepareMemoryForIO functions when it needs a physical memory address--will continue to work.

IMPORTANT

Designers of DMA device drivers should refer to Designing PCI Cards and Drivers for Power Macintosh Computers for information about using the PrepareMemoryForIO function to set up mapping for physical and logical addresses. The relevant section is on pages 219-229. For device drivers running with the NewWorld software, the sentence on page 227 that says "Certain DMA transactions require both mapping tables" should be interpreted to mean "All DMA transactions..."


© 1999 Apple Computer, Inc. – (Last Updated 29 April 99)